// pages/attractions/attractions.js
var that;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    list: [
      {
        nickName: "春风十里",
        content: "今天天气真好，带着相机来桃溪柳陌拍照，遇到了非遗传承人在现场展示竹编技艺，太幸运了！拍了好多照片，分享给大家看看～",
        time: "2024-03-15",
        src: 'https://img.picui.cn/free/2025/05/12/6821e8ae83df7.jpg',
        imageList: ['https://img.picui.cn/free/2025/05/12/6821e8ac3bb90.jpg', 'https://img.picui.cn/free/2025/05/12/6821e8ac3bb90.jpg'],
        loveList: [
          { nickName: '小桥流水' },
          { nickName: '柳絮飘飘' },
          { nickName: '桃花朵朵' }
        ],
        commentList: [
          { content: "小桥流水：拍得真好看！我也想去看看", isMyComment: false },
          { content: "柳絮飘飘：竹编技艺太神奇了，下次一定要去现场看看", isMyComment: false }
        ],
        isMyPost: false
      },
      {
        nickName: "古韵悠悠",
        content: "周末带爸妈来玩，他们特别喜欢这里的古建筑，说很有小时候的味道。中午在景区吃了桃花酥，妈妈还特意打包了两盒带回家，说比外面买的好吃多了！",
        time: "2024-03-14",
        src: 'https://img.picui.cn/free/2025/05/12/6821e8aa2c740.jpg',
        imageList: ['https://img.picui.cn/free/2025/05/12/6821e8a2eccf0.jpg'],
        loveList: [
          { nickName: '春风十里' },
          { nickName: '溪水潺潺' }
        ],
        commentList: [
          { content: "春风十里：桃花酥确实很好吃，我也买了两盒", isMyComment: false },
          { content: "溪水潺潺：下次我也要带父母来玩", isMyComment: false }
        ],
        isMyPost: false
      },
      {
        nickName: "柳絮飘飘",
        content: "周末人有点多，但是不影响游玩体验。小朋友在非遗体验区玩得很开心，自己动手做了个竹编小篮子，虽然歪歪扭扭的，但是很有成就感！",
        time: "2024-03-13",
        src: 'https://img.picui.cn/free/2025/05/12/6821e8ba6b2ae.jpeg',
        imageList: ['https://img.picui.cn/free/2025/05/12/6821e8ba6b2ae.jpeg', 'https://img.picui.cn/free/2025/05/12/6821e8b994ba4.jpeg'],
        loveList: [
          { nickName: '春风十里' },
          { nickName: '古韵悠悠' },
          { nickName: '桃花朵朵' }
        ],
        commentList: [
          { content: "桃花朵朵：小朋友真棒！下次我也要带孩子去体验", isMyComment: false }
        ],
        isMyPost: false
      }
    ],
    // 当前点击操作面板的索引，每条朋友圈一个面板
    showOperationPannelIndex: -1,
    commentContent: '', // 新增：评论内容
    currentCommentIndex: -1, // 新增：当前评论的帖子索引
    
    // 新增：发表新帖相关数据
    showPostForm: false,
    newPostContent: '',
    tempImagePaths: [],
    userNickName: '元宝', // 用户昵称统一设为"元宝"
  },
  
  // 添加返回功能
  goBack: function() {
    wx.navigateBack({
      delta: 1
    });
  },
  
  // 检查内容是否应该显示（静默检查，无提示）
  checkContentVisibility: function() {
    // 设置解锁时间：2025年5月16日下午5点
    const unlockTime = new Date(2025, 4, 16, 17, 0, 0); // 月份是从0开始的，所以5月是4
    const currentTime = new Date();
    
    // 如果当前时间大于或等于解锁时间，则显示内容
    const isVisible = currentTime >= unlockTime;
    
    if (!isVisible) {
      // 如果内容不可见，静默返回上一页
      setTimeout(() => {
        wx.navigateBack({
          delta: 1
        });
      }, 100);
    }
    
    return isVisible;
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options){
    that = this;
    // 设置固定昵称为"元宝"
    this.setData({
      userNickName: '元宝'
    });
    
    // 页面加载时检查内容可见性
    this.checkContentVisibility();
    
    // 从本地存储加载帖子数据
    this.loadPostsFromStorage();
  },
  
  // 从本地存储加载帖子数据
  loadPostsFromStorage: function() {
    try {
      const posts = wx.getStorageSync('attractions_posts');
      if (posts && posts.length > 0) {
        this.setData({
          list: posts
        });
      } else {
        // 如果没有本地存储数据，保存当前默认数据到本地
        this.savePostsToStorage();
      }
    } catch (e) {
      console.error('加载本地存储失败:', e);
    }
  },
  
  // 保存帖子数据到本地存储
  savePostsToStorage: function() {
    try {
      wx.setStorageSync('attractions_posts', this.data.list);
    } catch (e) {
      console.error('保存到本地存储失败:', e);
    }
  },
  
  // 控制操作面板展示
  showOperationPannel(e){
    console.log("showOperationPannel",e);
    // 获取点击的索引
    var index = e.currentTarget.dataset.index;
    // 如果正在展示，则关闭
    if(that.data.showOperationPannelIndex == index){
      that.setData({
        // 索引从0开始
        showOperationPannelIndex: -1
      })
    }
    else{
      that.setData({
        // 设置成当前点击的索引
        showOperationPannelIndex: index
      })
    } 
  },
  
  // 显示发表新帖表单
  showPostForm: function() {
    this.setData({
      showPostForm: true,
      newPostContent: '',
      tempImagePaths: []
    });
  },
  
  // 隐藏发表新帖表单
  hidePostForm: function() {
    this.setData({
      showPostForm: false
    });
  },
  
  // 监听新帖内容输入
  onPostContentInput: function(e) {
    this.setData({
      newPostContent: e.detail.value
    });
  },
  
  // 选择图片
  chooseImage: function() {
    const that = this;
    wx.chooseImage({
      count: 9 - that.data.tempImagePaths.length,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: function(res) {
        // 返回选定照片的本地文件路径列表
        that.setData({
          tempImagePaths: that.data.tempImagePaths.concat(res.tempFilePaths)
        });
      }
    });
  },
  
  // 移除已选图片
  removeImage: function(e) {
    const index = e.currentTarget.dataset.index;
    let tempImagePaths = this.data.tempImagePaths;
    tempImagePaths.splice(index, 1);
    this.setData({
      tempImagePaths: tempImagePaths
    });
  },
  
  // 提交新帖
  submitPost: function() {
    if (!this.data.newPostContent.trim()) {
      wx.showToast({
        title: '请输入内容',
        icon: 'none'
      });
      return;
    }
    
    // 获取当前日期作为发帖时间
    const date = new Date();
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const dateStr = `${year}-${month}-${day}`;
    
    // 创建新帖
    const newPost = {
      nickName: '元宝', // 固定为"元宝"
      content: this.data.newPostContent,
      time: dateStr,
      imageList: this.data.tempImagePaths,
      loveList: [],
      commentList: [],
      isMyPost: true // 标记为自己发布的帖子
    };
    
    // 添加到列表前端
    const list = this.data.list;
    list.unshift(newPost);
    
    this.setData({
      list: list,
      showPostForm: false
    });
    
    // 保存到本地存储
    this.savePostsToStorage();
    
    wx.showToast({
      title: '发表成功',
      icon: 'success'
    });
  },
  
  // 处理点赞
  handleLike(e) {
    const index = e.currentTarget.dataset.index;
    const list = this.data.list;
    const post = list[index];
    
    // 检查是否已经点赞
    const isLiked = post.loveList.some(item => item.nickName === '元宝');
    
    if (isLiked) {
      // 取消点赞
      post.loveList = post.loveList.filter(item => item.nickName !== '元宝');
    } else {
      // 添加点赞
      post.loveList.push({
        nickName: '元宝'
      });
    }
    
    this.setData({
      list: list
    });
    
    // 保存到本地存储
    this.savePostsToStorage();
  },

  // 处理评论
  handleComment(e) {
    const index = e.currentTarget.dataset.index;
    
    wx.showModal({
      title: '发表评论',
      editable: true,
      placeholderText: '请输入评论内容',
      success: (res) => {
        if (res.confirm && res.content) {
          const list = this.data.list;
          const post = list[index];
          
          // 添加新评论，并标记为自己的评论
          post.commentList.push({
            content: "元宝：" + res.content,
            isMyComment: true // 标记为自己的评论
          });
          
          this.setData({
            list: list
          });
          
          // 保存到本地存储
          this.savePostsToStorage();
          
          // 显示提示
          wx.showToast({
            title: '评论已保存',
            icon: 'success'
          });
        }
      }
    });
  },
  
  // 新增：处理评论长按事件，用于删除自己的评论
  handleCommentLongPress(e) {
    const postIndex = e.currentTarget.dataset.postIndex;
    const commentIndex = e.currentTarget.dataset.commentIndex;
    const list = this.data.list;
    const comment = list[postIndex].commentList[commentIndex];
    
    // 检查是否是元宝发表的评论（评论内容以"元宝："开头）
    if (comment.content.startsWith("元宝：")) {
      wx.showModal({
        title: '删除评论',
        content: '确定要删除这条评论吗？',
        success: (res) => {
          if (res.confirm) {
            // 删除评论
            list[postIndex].commentList.splice(commentIndex, 1);
            
            this.setData({
              list: list
            });
            
            // 保存到本地存储
            this.savePostsToStorage();
            
            wx.showToast({
              title: '评论已删除',
              icon: 'success'
            });
          }
        }
      });
    }
    // 不是自己发表的评论时不做任何提示，静默忽略长按事件
  },

  // 新增：处理帖子长按事件，用于删除自己发布的帖子
  handlePostLongPress(e) {
    const index = e.currentTarget.dataset.index;
    const list = this.data.list;
    const post = list[index];
    
    // 检查是否是元宝发布的帖子
    if (post.nickName === '元宝') {
      wx.showModal({
        title: '删除帖子',
        content: '确定要删除这条帖子吗？',
        success: (res) => {
          if (res.confirm) {
            // 删除帖子
            list.splice(index, 1);
            
            this.setData({
              list: list
            });
            
            // 保存到本地存储
            this.savePostsToStorage();
            
            wx.showToast({
              title: '帖子已删除',
              icon: 'success'
            });
          }
        }
      });
    }
    // 不是自己发布的帖子时不做任何提示，静默忽略长按事件
  },

  more: function (event) {
    console.log("Hello, World!");
    // 在这里可以根据获取到的text信息执行相应的页面跳转逻辑
    wx.navigateTo({
      url: '/pages/Clock/Clock'
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 每次页面显示时重新检查内容可见性
    this.checkContentVisibility();
    
    // 每次页面显示时加载存储的数据
    this.loadPostsFromStorage();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    // 页面隐藏时保存数据
    this.savePostsToStorage();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 页面卸载时保存数据
    this.savePostsToStorage();
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新时重新加载数据
    this.loadPostsFromStorage();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
})